diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5bced90..a25b9f4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,7 @@ option(SPM_NO_THREADLOCAL "Disable thread_local operator" OFF)
 option(SPM_USE_BUILTIN_PROTOBUF "Use built-in protobuf" ON)
 option(SPM_USE_EXTERNAL_ABSL "Use external protobuf" OFF)
 
-set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 if (UNIX)
@@ -45,6 +45,8 @@ else()
 endif()
 set(GNUCXX_STD_SUPPORT_VERSION "4.3")
 
+add_definitions(-D_USE_TF_STRING_VIEW)
+
 if (SPM_USE_BUILTIN_PROTOBUF)
   set(libprotobuf_lite "")
 else()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f7e4d50..b82aadc 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -28,6 +28,8 @@ else()
   set(ABSL_STRINGS_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/absl/strings/string_view.cc)
 endif()
 
+set(SPM_INSTALLTARGETS sentencepiece-static)
+
 if (SPM_USE_BUILTIN_PROTOBUF)
   set(SPM_PROTO_HDRS builtin_pb/sentencepiece.pb.h)
   set(SPM_PROTO_SRCS builtin_pb/sentencepiece.pb.cc)
diff --git a/src/bpe_model.cc b/src/bpe_model.cc
index 5d77baa..32dccef 100644
--- a/src/bpe_model.cc
+++ b/src/bpe_model.cc
@@ -22,7 +22,7 @@
 #include <vector>
 
 #include "freelist.h"
-#include "third_party/absl/container/flat_hash_map.h"
+#include "absl/container/flat_hash_map.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/bpe_model_trainer.cc b/src/bpe_model_trainer.cc
index 964d44e..ae8983c 100644
--- a/src/bpe_model_trainer.cc
+++ b/src/bpe_model_trainer.cc
@@ -18,7 +18,7 @@
 #include <vector>
 
 #include "bpe_model_trainer.h"
-#include "third_party/absl/container/flat_hash_set.h"
+#include "absl/container/flat_hash_set.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/bpe_model_trainer.h b/src/bpe_model_trainer.h
index e011a37..17f6e06 100644
--- a/src/bpe_model_trainer.h
+++ b/src/bpe_model_trainer.h
@@ -20,7 +20,7 @@
 #include <vector>
 
 #include "sentencepiece_model.pb.h"
-#include "third_party/absl/container/flat_hash_map.h"
+#include "absl/container/flat_hash_map.h"
 #include "trainer_interface.h"
 
 namespace sentencepiece {
diff --git a/src/bpe_model_trainer_test.cc b/src/bpe_model_trainer_test.cc
index 173eb9c..2a43c3a 100644
--- a/src/bpe_model_trainer_test.cc
+++ b/src/bpe_model_trainer_test.cc
@@ -20,8 +20,8 @@
 #include "sentencepiece_processor.h"
 #include "sentencepiece_trainer.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_join.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_join.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/builder.cc b/src/builder.cc
index 14105a5..4b3c6da 100644
--- a/src/builder.cc
+++ b/src/builder.cc
@@ -19,10 +19,10 @@
 #include <utility>
 
 #include "filesystem.h"
-#include "third_party/absl/strings/str_join.h"
-#include "third_party/absl/strings/str_replace.h"
-#include "third_party/absl/strings/str_split.h"
-#include "third_party/absl/strings/strip.h"
+#include "absl/strings/str_join.h"
+#include "absl/strings/str_replace.h"
+#include "absl/strings/str_split.h"
+#include "absl/strings/strip.h"
 
 #ifdef ENABLE_NFKC_COMPILE
 #include <unicode/errorcode.h>
diff --git a/src/builder.h b/src/builder.h
index 49d2884..289fab6 100644
--- a/src/builder.h
+++ b/src/builder.h
@@ -22,7 +22,7 @@
 #include "common.h"
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace sentencepiece {
 namespace normalizer {
diff --git a/src/builder_test.cc b/src/builder_test.cc
index 4acb7b3..1dee5c7 100644
--- a/src/builder_test.cc
+++ b/src/builder_test.cc
@@ -18,7 +18,7 @@
 #include "normalizer.h"
 #include "sentencepiece_trainer.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/char_model_trainer_test.cc b/src/char_model_trainer_test.cc
index 8c2e4b7..e8b4979 100644
--- a/src/char_model_trainer_test.cc
+++ b/src/char_model_trainer_test.cc
@@ -19,8 +19,8 @@
 #include "filesystem.h"
 #include "sentencepiece_processor.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_join.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_join.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/common.h b/src/common.h
index 7595634..833a9f2 100644
--- a/src/common.h
+++ b/src/common.h
@@ -25,8 +25,6 @@
 #include <utility>
 #include <vector>
 
-#include "config.h"
-
 #if defined(_WIN32) && !defined(__CYGWIN__)
 #define OS_WIN
 #else
@@ -147,7 +145,7 @@ inline const char *BaseName(const char *path) {
 }  // namespace sentencepiece
 
 #define LOG(severity)                                                        \
-  (::sentencepiece::logging::GetMinLogLevel() >                              \
+  (0 >                                                                       \
    ::sentencepiece::logging::LOG_##severity)                                 \
       ? 0                                                                    \
       : ::sentencepiece::error::Die(                                         \
diff --git a/src/compile_charsmap_main.cc b/src/compile_charsmap_main.cc
index c5a5188..931028b 100644
--- a/src/compile_charsmap_main.cc
+++ b/src/compile_charsmap_main.cc
@@ -22,8 +22,8 @@
 #include "filesystem.h"
 #include "init.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/flags/flag.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/flags/flag.h"
+#include "absl/strings/string_view.h"
 
 using sentencepiece::normalizer::Builder;
 
diff --git a/src/error.cc b/src/error.cc
index a226d98..ab4675d 100644
--- a/src/error.cc
+++ b/src/error.cc
@@ -20,8 +20,8 @@
 #ifdef _USE_EXTERNAL_ABSL
 // Naive workaround to define minloglevel on external absl package.
 // We want to define them in other cc file.
-#include "third_party/absl/flags/flag.h"
-#include "third_party/absl/flags/parse.h"
+#include "absl/flags/flag.h"
+#include "absl/flags/parse.h"
 ABSL_FLAG(int32, minloglevel, 0,
           "Messages logged at a lower level than this don't actually.");
 #endif
diff --git a/src/filesystem.cc b/src/filesystem.cc
index 833c8f7..6a169d9 100644
--- a/src/filesystem.cc
+++ b/src/filesystem.cc
@@ -15,7 +15,7 @@
 #include <iostream>
 
 #include "filesystem.h"
-#include "third_party/absl/memory/memory.h"
+#include "absl/memory/memory.h"
 #include "util.h"
 
 #if defined(OS_WIN) && defined(UNICODE) && defined(_UNICODE)
diff --git a/src/filesystem.h b/src/filesystem.h
index e572b4b..dbcce48 100644
--- a/src/filesystem.h
+++ b/src/filesystem.h
@@ -23,7 +23,7 @@
 
 #include "common.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace sentencepiece {
 namespace filesystem {
diff --git a/src/filesystem_test.cc b/src/filesystem_test.cc
index 790e756..39ece99 100644
--- a/src/filesystem_test.cc
+++ b/src/filesystem_test.cc
@@ -14,7 +14,7 @@
 
 #include "filesystem.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/init.h b/src/init.h
index 090a2d9..acfda8a 100644
--- a/src/init.h
+++ b/src/init.h
@@ -16,8 +16,8 @@
 #define INIT_H_
 
 #include "common.h"
-#include "third_party/absl/flags/flag.h"
-#include "third_party/absl/flags/parse.h"
+#include "absl/flags/flag.h"
+#include "absl/flags/parse.h"
 
 ABSL_DECLARE_FLAG(int32, minloglevel);
 
diff --git a/src/model_factory.cc b/src/model_factory.cc
index be99501..040c00c 100644
--- a/src/model_factory.cc
+++ b/src/model_factory.cc
@@ -15,7 +15,7 @@
 #include "bpe_model.h"
 #include "char_model.h"
 #include "model_factory.h"
-#include "third_party/absl/memory/memory.h"
+#include "absl/memory/memory.h"
 #include "unigram_model.h"
 #include "word_model.h"
 
diff --git a/src/model_interface.cc b/src/model_interface.cc
index ea5d0e7..31540c6 100644
--- a/src/model_interface.cc
+++ b/src/model_interface.cc
@@ -16,8 +16,8 @@
 
 #include "model_interface.h"
 #include "sentencepiece_model.pb.h"
-#include "third_party/absl/memory/memory.h"
-#include "third_party/absl/strings/str_format.h"
+#include "absl/memory/memory.h"
+#include "absl/strings/str_format.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/model_interface.h b/src/model_interface.h
index 75cbb23..be7fb4d 100644
--- a/src/model_interface.h
+++ b/src/model_interface.h
@@ -25,8 +25,8 @@
 #include "normalizer.h"
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/container/flat_hash_map.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/container/flat_hash_map.h"
+#include "absl/strings/string_view.h"
 #include "third_party/darts_clone/darts.h"
 #include "util.h"
 
diff --git a/src/model_interface_test.cc b/src/model_interface_test.cc
index f5ee492..a41b308 100644
--- a/src/model_interface_test.cc
+++ b/src/model_interface_test.cc
@@ -15,7 +15,7 @@
 #include "model_factory.h"
 #include "model_interface.h"
 #include "testharness.h"
-#include "third_party/absl/container/flat_hash_map.h"
+#include "absl/container/flat_hash_map.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/normalizer.cc b/src/normalizer.cc
index 3fe919b..81f3718 100644
--- a/src/normalizer.cc
+++ b/src/normalizer.cc
@@ -18,10 +18,10 @@
 #include <vector>
 
 #include "common.h"
-#include "third_party/absl/memory/memory.h"
-#include "third_party/absl/strings/match.h"
-#include "third_party/absl/strings/string_view.h"
-#include "third_party/absl/strings/strip.h"
+#include "absl/memory/memory.h"
+#include "absl/strings/match.h"
+#include "absl/strings/string_view.h"
+#include "absl/strings/strip.h"
 #include "third_party/darts_clone/darts.h"
 #include "util.h"
 
diff --git a/src/normalizer.h b/src/normalizer.h
index 37fdb8a..f2f61b4 100644
--- a/src/normalizer.h
+++ b/src/normalizer.h
@@ -25,7 +25,7 @@
 #include "util.h"
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 #include "third_party/darts_clone/darts.h"
 
 namespace sentencepiece {
diff --git a/src/pretokenizer_for_training.cc b/src/pretokenizer_for_training.cc
index 049658e..8021511 100644
--- a/src/pretokenizer_for_training.cc
+++ b/src/pretokenizer_for_training.cc
@@ -14,7 +14,7 @@
 #include <string>
 
 #include "pretokenizer_for_training.h"
-#include "third_party/absl/strings/str_replace.h"
+#include "absl/strings/str_replace.h"
 
 namespace sentencepiece {
 namespace pretokenizer {
diff --git a/src/pretokenizer_for_training.h b/src/pretokenizer_for_training.h
index 2d3bc82..38beaa6 100644
--- a/src/pretokenizer_for_training.h
+++ b/src/pretokenizer_for_training.h
@@ -21,7 +21,7 @@
 #include "common.h"
 #include "sentencepiece.pb.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace sentencepiece {
 namespace pretokenizer {
diff --git a/src/pretokenizer_for_training_test.cc b/src/pretokenizer_for_training_test.cc
index 80f4787..c559eb8 100644
--- a/src/pretokenizer_for_training_test.cc
+++ b/src/pretokenizer_for_training_test.cc
@@ -13,7 +13,7 @@
 // limitations under the License.!
 #include "pretokenizer_for_training.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "trainer_interface.h"
 
 namespace sentencepiece {
diff --git a/src/sentencepiece_processor.cc b/src/sentencepiece_processor.cc
index e4e9d4a..79fbd9b 100644
--- a/src/sentencepiece_processor.cc
+++ b/src/sentencepiece_processor.cc
@@ -24,14 +24,14 @@
 #include "model_interface.h"
 #include "normalizer.h"
 #include "sentencepiece.pb.h"
-#include "third_party/absl/memory/memory.h"
-#include "third_party/absl/strings/numbers.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_join.h"
-#include "third_party/absl/strings/str_replace.h"
-#include "third_party/absl/strings/str_split.h"
-#include "third_party/absl/strings/string_view.h"
-#include "third_party/absl/strings/strip.h"
+#include "absl/memory/memory.h"
+#include "absl/strings/numbers.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_join.h"
+#include "absl/strings/str_replace.h"
+#include "absl/strings/str_split.h"
+#include "absl/strings/string_view.h"
+#include "absl/strings/strip.h"
 #include "unigram_model.h"
 #include "util.h"
 
diff --git a/src/sentencepiece_processor.h b/src/sentencepiece_processor.h
index 7227920..36e503f 100644
--- a/src/sentencepiece_processor.h
+++ b/src/sentencepiece_processor.h
@@ -22,8 +22,8 @@
 #include <vector>
 
 #if defined(_USE_INTERNAL_STRING_VIEW)
-#include "third_party/absl/strings/string_view.h"
-#elif defined(_USE_TF_STRING_VIEW)
+#include "absl/strings/string_view.h"
+#elif (1==1)
 #include "absl/strings/string_view.h"
 #else
 // Minimum absl::string_view class that is used only for
diff --git a/src/sentencepiece_processor_test.cc b/src/sentencepiece_processor_test.cc
index e10a47c..962d279 100644
--- a/src/sentencepiece_processor_test.cc
+++ b/src/sentencepiece_processor_test.cc
@@ -24,10 +24,10 @@
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_trainer.h"
 #include "testharness.h"
-#include "third_party/absl/container/flat_hash_map.h"
-#include "third_party/absl/memory/memory.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/container/flat_hash_map.h"
+#include "absl/memory/memory.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/string_view.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/sentencepiece_trainer.cc b/src/sentencepiece_trainer.cc
index 429d0f4..992d74c 100644
--- a/src/sentencepiece_trainer.cc
+++ b/src/sentencepiece_trainer.cc
@@ -23,11 +23,11 @@
 #include "sentencepiece.pb.h"
 #include "sentencepiece_model.pb.h"
 #include "spec_parser.h"
-#include "third_party/absl/strings/numbers.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_split.h"
-#include "third_party/absl/strings/string_view.h"
-#include "third_party/absl/strings/strip.h"
+#include "absl/strings/numbers.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_split.h"
+#include "absl/strings/string_view.h"
+#include "absl/strings/strip.h"
 #include "trainer_factory.h"
 #include "util.h"
 
diff --git a/src/sentencepiece_trainer_test.cc b/src/sentencepiece_trainer_test.cc
index e44e66b..fc73b1d 100644
--- a/src/sentencepiece_trainer_test.cc
+++ b/src/sentencepiece_trainer_test.cc
@@ -16,7 +16,7 @@
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_trainer.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/spec_parser.h b/src/spec_parser.h
index a168322..3719cfc 100644
--- a/src/spec_parser.h
+++ b/src/spec_parser.h
@@ -19,8 +19,8 @@
 #include <vector>
 
 #include "sentencepiece_processor.h"
-#include "third_party/absl/strings/ascii.h"
-#include "third_party/absl/strings/str_split.h"
+#include "absl/strings/ascii.h"
+#include "absl/strings/str_split.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/spm_decode_main.cc b/src/spm_decode_main.cc
index 32cb382..a06c353 100644
--- a/src/spm_decode_main.cc
+++ b/src/spm_decode_main.cc
@@ -21,8 +21,8 @@
 #include "init.h"
 #include "sentencepiece.pb.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/flags/flag.h"
-#include "third_party/absl/strings/str_split.h"
+#include "absl/flags/flag.h"
+#include "absl/strings/str_split.h"
 #include "util.h"
 
 ABSL_FLAG(std::string, model, "", "model file name");
diff --git a/src/spm_encode_main.cc b/src/spm_encode_main.cc
index f151ecf..f7e14ac 100644
--- a/src/spm_encode_main.cc
+++ b/src/spm_encode_main.cc
@@ -21,10 +21,10 @@
 #include "init.h"
 #include "sentencepiece.pb.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/container/flat_hash_map.h"
-#include "third_party/absl/flags/flag.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_join.h"
+#include "absl/container/flat_hash_map.h"
+#include "absl/flags/flag.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_join.h"
 #include "trainer_interface.h"
 
 ABSL_FLAG(std::string, model, "", "model file name");
diff --git a/src/spm_export_vocab_main.cc b/src/spm_export_vocab_main.cc
index b5d93cb..70a65c1 100644
--- a/src/spm_export_vocab_main.cc
+++ b/src/spm_export_vocab_main.cc
@@ -20,7 +20,7 @@
 #include "init.h"
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/flags/flag.h"
+#include "absl/flags/flag.h"
 
 ABSL_FLAG(std::string, output, "", "Output filename");
 ABSL_FLAG(std::string, model, "", "input model file name");
diff --git a/src/spm_normalize_main.cc b/src/spm_normalize_main.cc
index 96da360..8c541b8 100644
--- a/src/spm_normalize_main.cc
+++ b/src/spm_normalize_main.cc
@@ -21,7 +21,7 @@
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_processor.h"
 #include "sentencepiece_trainer.h"
-#include "third_party/absl/flags/flag.h"
+#include "absl/flags/flag.h"
 
 ABSL_FLAG(std::string, model, "", "Model file name");
 ABSL_FLAG(bool, use_internal_normalization, false,
diff --git a/src/spm_train_main.cc b/src/spm_train_main.cc
index a21fb8b..a4ea2bd 100644
--- a/src/spm_train_main.cc
+++ b/src/spm_train_main.cc
@@ -18,10 +18,10 @@
 #include "init.h"
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_trainer.h"
-#include "third_party/absl/flags/flag.h"
-#include "third_party/absl/strings/ascii.h"
-#include "third_party/absl/strings/str_join.h"
-#include "third_party/absl/strings/str_split.h"
+#include "absl/flags/flag.h"
+#include "absl/strings/ascii.h"
+#include "absl/strings/str_join.h"
+#include "absl/strings/str_split.h"
 #include "util.h"
 
 using sentencepiece::NormalizerSpec;
diff --git a/src/testharness.cc b/src/testharness.cc
index f6b1efe..daf2d14 100644
--- a/src/testharness.cc
+++ b/src/testharness.cc
@@ -26,7 +26,7 @@
 #include <vector>
 
 #include "common.h"
-#include "third_party/absl/strings/str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/testharness.h b/src/testharness.h
index 9879b06..98317ad 100644
--- a/src/testharness.h
+++ b/src/testharness.h
@@ -21,9 +21,9 @@
 #include <string>
 
 #include "common.h"
-#include "third_party/absl/flags/flag.h"
-#include "third_party/absl/flags/parse.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/flags/flag.h"
+#include "absl/flags/parse.h"
+#include "absl/strings/string_view.h"
 
 ABSL_DECLARE_FLAG(std::string, test_tmpdir);
 ABSL_DECLARE_FLAG(std::string, test_srcdir);
diff --git a/src/trainer_factory.cc b/src/trainer_factory.cc
index d1d2541..ff594d0 100644
--- a/src/trainer_factory.cc
+++ b/src/trainer_factory.cc
@@ -14,7 +14,7 @@
 
 #include "bpe_model_trainer.h"
 #include "char_model_trainer.h"
-#include "third_party/absl/memory/memory.h"
+#include "absl/memory/memory.h"
 #include "trainer_factory.h"
 #include "unigram_model_trainer.h"
 #include "word_model_trainer.h"
diff --git a/src/trainer_interface.cc b/src/trainer_interface.cc
index 53edc7b..0267c82 100644
--- a/src/trainer_interface.cc
+++ b/src/trainer_interface.cc
@@ -27,13 +27,13 @@
 #include "normalizer.h"
 #include "sentencepiece_processor.h"
 #include "sentencepiece_trainer.h"
-#include "third_party/absl/container/flat_hash_map.h"
-#include "third_party/absl/memory/memory.h"
-#include "third_party/absl/strings/numbers.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_format.h"
-#include "third_party/absl/strings/str_join.h"
-#include "third_party/absl/strings/str_split.h"
+#include "absl/container/flat_hash_map.h"
+#include "absl/memory/memory.h"
+#include "absl/strings/numbers.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_format.h"
+#include "absl/strings/str_join.h"
+#include "absl/strings/str_split.h"
 #include "unicode_script.h"
 #include "util.h"
 
diff --git a/src/trainer_interface.h b/src/trainer_interface.h
index f66d59a..8a654ec 100644
--- a/src/trainer_interface.h
+++ b/src/trainer_interface.h
@@ -27,7 +27,7 @@
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_processor.h"
 #include "sentencepiece_trainer.h"
-#include "third_party/absl/container/flat_hash_map.h"
+#include "absl/container/flat_hash_map.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/trainer_interface_test.cc b/src/trainer_interface_test.cc
index c61c7ce..23fcafa 100644
--- a/src/trainer_interface_test.cc
+++ b/src/trainer_interface_test.cc
@@ -16,8 +16,8 @@
 
 #include "filesystem.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_format.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_format.h"
 #include "trainer_interface.h"
 #include "util.h"
 
diff --git a/src/unicode_script.cc b/src/unicode_script.cc
index 583dc30..11b24dc 100644
--- a/src/unicode_script.cc
+++ b/src/unicode_script.cc
@@ -14,7 +14,7 @@
 
 #include <unordered_map>
 
-#include "third_party/absl/container/flat_hash_map.h"
+#include "absl/container/flat_hash_map.h"
 #include "unicode_script.h"
 #include "unicode_script_map.h"
 #include "util.h"
diff --git a/src/unicode_script_map.h b/src/unicode_script_map.h
index f2e67e9..f1b8299 100644
--- a/src/unicode_script_map.h
+++ b/src/unicode_script_map.h
@@ -14,7 +14,7 @@
 
 #ifndef UNICODE_SCRIPT_DATA_H_
 #define UNICODE_SCRIPT_DATA_H_
-#include "third_party/absl/container/flat_hash_map.h"
+#include "absl/container/flat_hash_map.h"
 namespace sentencepiece {
 namespace unicode_script {
 namespace {
diff --git a/src/unicode_script_test.cc b/src/unicode_script_test.cc
index ab33565..e0b1c4d 100644
--- a/src/unicode_script_test.cc
+++ b/src/unicode_script_test.cc
@@ -14,7 +14,7 @@
 
 #include "common.h"
 #include "testharness.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 #include "unicode_script.h"
 #include "util.h"
 
diff --git a/src/unigram_model.cc b/src/unigram_model.cc
index bd2d99b..cf60862 100644
--- a/src/unigram_model.cc
+++ b/src/unigram_model.cc
@@ -21,9 +21,9 @@
 #include <utility>
 #include <vector>
 
-#include "third_party/absl/memory/memory.h"
-#include "third_party/absl/strings/str_split.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/memory/memory.h"
+#include "absl/strings/str_split.h"
+#include "absl/strings/string_view.h"
 #include "unigram_model.h"
 #include "util.h"
 
diff --git a/src/unigram_model_test.cc b/src/unigram_model_test.cc
index dacec38..7449b15 100644
--- a/src/unigram_model_test.cc
+++ b/src/unigram_model_test.cc
@@ -20,8 +20,8 @@
 #include "sentencepiece_model.pb.h"
 #include "sentencepiece_processor.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_join.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_join.h"
 #include "unigram_model.h"
 #include "util.h"
 
diff --git a/src/unigram_model_trainer.cc b/src/unigram_model_trainer.cc
index e5dc8c0..7637d6d 100644
--- a/src/unigram_model_trainer.cc
+++ b/src/unigram_model_trainer.cc
@@ -25,8 +25,8 @@
 #include "normalizer.h"
 #include "pretokenizer_for_training.h"
 #include "sentencepiece_trainer.h"
-#include "third_party/absl/container/flat_hash_map.h"
-#include "third_party/absl/memory/memory.h"
+#include "absl/container/flat_hash_map.h"
+#include "absl/memory/memory.h"
 #include "third_party/esaxx/esa.hxx"  // Suffix array library.
 #include "unicode_script.h"
 #include "unigram_model_trainer.h"
diff --git a/src/unigram_model_trainer.h b/src/unigram_model_trainer.h
index 91fbeb4..f2d6b36 100644
--- a/src/unigram_model_trainer.h
+++ b/src/unigram_model_trainer.h
@@ -21,7 +21,7 @@
 #include <vector>
 
 #include "sentencepiece_model.pb.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 #include "trainer_interface.h"
 #include "unigram_model.h"
 #include "util.h"
diff --git a/src/unigram_model_trainer_test.cc b/src/unigram_model_trainer_test.cc
index ffe515e..fdb25f6 100644
--- a/src/unigram_model_trainer_test.cc
+++ b/src/unigram_model_trainer_test.cc
@@ -16,8 +16,8 @@
 #include "sentencepiece_processor.h"
 #include "sentencepiece_trainer.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_join.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_join.h"
 #include "unigram_model_trainer.h"
 #include "util.h"
 
diff --git a/src/util.h b/src/util.h
index 18d6e9c..2ba33f7 100644
--- a/src/util.h
+++ b/src/util.h
@@ -30,7 +30,7 @@
 
 #include "common.h"
 #include "sentencepiece_processor.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 #ifdef SPM_NO_THREADLOCAL
 #include <pthread.h>
diff --git a/src/util_test.cc b/src/util_test.cc
index 71d006f..231fc96 100644
--- a/src/util_test.cc
+++ b/src/util_test.cc
@@ -16,7 +16,7 @@
 
 #include "filesystem.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "util.h"
 
 namespace sentencepiece {
diff --git a/src/word_model_trainer.cc b/src/word_model_trainer.cc
index 0b8b062..b057843 100644
--- a/src/word_model_trainer.cc
+++ b/src/word_model_trainer.cc
@@ -15,8 +15,8 @@
 #include <cmath>
 #include <string>
 
-#include "third_party/absl/container/flat_hash_map.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/container/flat_hash_map.h"
+#include "absl/strings/string_view.h"
 #include "util.h"
 #include "word_model.h"
 #include "word_model_trainer.h"
diff --git a/src/word_model_trainer_test.cc b/src/word_model_trainer_test.cc
index c4a8bc6..366810f 100644
--- a/src/word_model_trainer_test.cc
+++ b/src/word_model_trainer_test.cc
@@ -18,8 +18,8 @@
 #include "filesystem.h"
 #include "sentencepiece_processor.h"
 #include "testharness.h"
-#include "third_party/absl/strings/str_cat.h"
-#include "third_party/absl/strings/str_join.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/str_join.h"
 #include "util.h"
 #include "word_model_trainer.h"
 
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
index d00ecba..2722386 100644
--- a/third_party/CMakeLists.txt
+++ b/third_party/CMakeLists.txt
@@ -1,4 +1,4 @@
-include_directories(absl/strings darts_clone esaxx protobuf-lite)
+include_directories(darts_clone esaxx protobuf-lite)
 
 
 
diff --git a/third_party/absl/flags/flag.cc b/third_party/absl/flags/flag.cc
index 09ff78f..a822c7c 100644
--- a/third_party/absl/flags/flag.cc
+++ b/third_party/absl/flags/flag.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.!
 
-#include "third_party/absl/flags/flag.h"
+#include "absl/flags/flag.h"
 
 #include <algorithm>
 #include <iostream>
diff --git a/third_party/absl/strings/ascii.h b/third_party/absl/strings/ascii.h
index 089c6a2..88c1b49 100644
--- a/third_party/absl/strings/ascii.h
+++ b/third_party/absl/strings/ascii.h
@@ -20,7 +20,7 @@
 
 #include <string>
 
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 
diff --git a/third_party/absl/strings/match.h b/third_party/absl/strings/match.h
index ddc1477..4a555bb 100644
--- a/third_party/absl/strings/match.h
+++ b/third_party/absl/strings/match.h
@@ -18,7 +18,7 @@
 
 #include <string>
 
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 
diff --git a/third_party/absl/strings/numbers.h b/third_party/absl/strings/numbers.h
index 460ea96..bf95155 100644
--- a/third_party/absl/strings/numbers.h
+++ b/third_party/absl/strings/numbers.h
@@ -18,7 +18,7 @@
 
 #include <sstream>
 
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 
diff --git a/third_party/absl/strings/str_cat.h b/third_party/absl/strings/str_cat.h
index 3c6c819..3084fdd 100644
--- a/third_party/absl/strings/str_cat.h
+++ b/third_party/absl/strings/str_cat.h
@@ -19,8 +19,8 @@
 #include <sstream>
 #include <string>
 
-#include "third_party/absl/strings/numbers.h"
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/numbers.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 
diff --git a/third_party/absl/strings/str_format.h b/third_party/absl/strings/str_format.h
index 158902a..2708c61 100644
--- a/third_party/absl/strings/str_format.h
+++ b/third_party/absl/strings/str_format.h
@@ -20,7 +20,7 @@
 
 #include <string>
 
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 
diff --git a/third_party/absl/strings/str_join.h b/third_party/absl/strings/str_join.h
index 42e08d9..6e293f9 100644
--- a/third_party/absl/strings/str_join.h
+++ b/third_party/absl/strings/str_join.h
@@ -18,7 +18,7 @@
 
 #include <string>
 
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 namespace {
diff --git a/third_party/absl/strings/str_replace.h b/third_party/absl/strings/str_replace.h
index 5cda342..26d82d3 100644
--- a/third_party/absl/strings/str_replace.h
+++ b/third_party/absl/strings/str_replace.h
@@ -18,7 +18,7 @@
 
 #include <string>
 
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 
diff --git a/third_party/absl/strings/str_split.h b/third_party/absl/strings/str_split.h
index db5b8e4..87f2d58 100644
--- a/third_party/absl/strings/str_split.h
+++ b/third_party/absl/strings/str_split.h
@@ -19,7 +19,7 @@
 #include <string>
 #include <vector>
 
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 namespace absl {
 namespace internal {
diff --git a/third_party/absl/strings/string_view.cc b/third_party/absl/strings/string_view.cc
index dce208d..12cea57 100644
--- a/third_party/absl/strings/string_view.cc
+++ b/third_party/absl/strings/string_view.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "third_party/absl/strings/string_view.h"
+#include "absl/strings/string_view.h"
 
 #ifndef ABSL_HAVE_STD_STRING_VIEW
 
diff --git a/third_party/absl/strings/strip.h b/third_party/absl/strings/strip.h
index 4ff251e..195cefb 100644
--- a/third_party/absl/strings/strip.h
+++ b/third_party/absl/strings/strip.h
@@ -18,7 +18,7 @@
 
 #include <string>
 
-#include "third_party/absl/strings/match.h"
+#include "absl/strings/match.h"
 
 namespace absl {
 

